

with Cellules;

package Plateaux is
   subtype Ligne is Character range '1' .. '3';
   subtype Colonne  is Character range 'A' .. 'C';
   type Plateau is private;


   function Libre(Un_Plateau: plateau; X: colonne; Y: ligne) return Boolean;

   function Occupant(Un_Plateau: Plateau; X: Colonne; Y: Ligne) return Cellules.Symbole;

   function Occupe_Par(Un_Plateau: Plateau; X : Colonne; Y : Ligne; Un_Symbole : Cellules.Symbole) return Boolean;

   procedure Tracer(Un_Plateau: in out Plateau; X: in Colonne; Y : in Ligne; Un_Symbole : in Cellules.Symbole);

   function Tester(Un_Plateau : Plateau; X: Colonne; Y: Ligne; Un_Symbole : in Cellules.Symbole) return Boolean;

   function Plein(Un_Plateau: Plateau) return Boolean;

private

   type Contenu is array (Ligne, Colonne) of Cellules.Cellule;

   subtype Numero_Coup is Natural range 0 .. 9;

   type Plateau is record
      Nombre_Coups : Numero_Coup:= 0;
      Un_Contenu : Contenu ;
   end record;

end plateaux;
